package datos;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;

import conexion.Conexion;

public class AccionesProveedor {

	public static ArrayList<Proveedor> getAll(){
		ArrayList<Proveedor> proveedores=new ArrayList<Proveedor>();
		try {
			Statement stm=Conexion.conectar().createStatement();
			ResultSet rs=stm.executeQuery("select * from proveedor");
			while (rs.next()){
				Proveedor p=new Proveedor(rs.getInt("idProveedor"), rs.getString("nombreProveedor"), rs.getString("razonSocial"), rs.getString("cuit"), rs.getString("iva"), rs.getString("direccion"), rs.getString("telFijo"), rs.getString("celular"), rs.getInt("ctaBancaria1"), rs.getInt("ctaBancaria2"));
				proveedores.add(p);
			}
			stm.close();
			Conexion.desconectar();
			
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return proveedores;
	}
	
	public static Proveedor getOne(int idProveedor){
		Proveedor p=null;
		try {
			Statement stm=Conexion.conectar().createStatement();
			ResultSet rs=stm.executeQuery("select * from proveedor where idProveedor="+idProveedor);
			while (rs.next()){
				p=new Proveedor(rs.getInt("idProveedor"), rs.getString("nombreProveedor"), rs.getString("razonSocial"), rs.getString("cuit"), rs.getString("iva"), rs.getString("direccion"), rs.getString("telFijo"), rs.getString("celular"), rs.getInt("ctaBancaria1"), rs.getInt("ctaBancaria2"));
			}
			//stm.close();
			
			//Conexion.desconectar();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return p;
	}
	
	public static void modificaProveedor(Proveedor p){
		int idProveedor=p.getIdProveedor();
		String nombre=p.getNombre();
		String direccion=p.getDireccion();
		String celular=p.getCelular();
		String telFijo=p.getTelFijo();
		int ctaBancaria1=p.getCuentaBancaria1();
		int ctaBancaria2=p.getCuentaBancaria2();
		String razon=p.getRazonSocial();
		String iva=p.getIva();
		String cuit=p.getCuit();
		try {
			Statement stm=Conexion.conectar().createStatement();
			stm.executeUpdate("UPDATE proveedor SET nombreProveedor='"+nombre+"', razonSocial='"+razon+"', cuit='"+cuit+"', iva='"+iva+"', direccion='"+direccion+"', telFijo='"+telFijo+"', celular='"+celular+"', ctaBancaria1='"+ctaBancaria1+"', ctaBancaria2='"+ctaBancaria2+"' WHERE idProveedor='"+idProveedor+"'");
			stm.close();
			Conexion.desconectar();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	public static void BajaProveedor(int idProveedor){
		try{
			Statement stm=Conexion.conectar().createStatement();
			stm.executeUpdate("delete from proveedor where idProveedor="+idProveedor);
			stm.close();
			Conexion.desconectar();
			
		}catch(Exception e){
			e.printStackTrace();
		}
		
	}
	
	public static void AltaProveedor(Proveedor p){
		try{
			Statement stm=Conexion.conectar().createStatement();
			stm.executeUpdate("insert into Proveedor (nombreProveedor,razonSocial,cuit,iva,direccion,telFijo,celular,ctaBancaria1,ctaBancaria2) values('"+p.getNombre()+"','"+p.getRazonSocial()+"','"+p.getCuit()+"','"+p.getIva()+"','"+p.getDireccion()+"','"+p.getTelFijo()+"','"+p.getCelular()+"','"+p.getCuentaBancaria1()+"','"+p.getCuentaBancaria2()+"')");
			stm.close();
			Conexion.desconectar();
		}catch(Exception e){
			e.printStackTrace();
		}
	}
	
	public static boolean existeNombreProveedor(String nombreProveedor){
		
		try {
			Statement stm=Conexion.conectar().createStatement();
			ResultSet rs=stm.executeQuery("select * from proveedor where nombreProveedor='"+nombreProveedor+"'");
			if(rs.next()){
				return true;
			}
			stm.close();
			Conexion.desconectar();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return false;
	}

	public static Proveedor getProveedorByNombre(String nombreProveedor) {
		Proveedor proveedor = null;
		try {
			Statement s = Conexion.conectar().createStatement();
			ResultSet rs = s.executeQuery("select * from proveedor where nombreProveedor='"+nombreProveedor+"'");
			while(rs.next()){
				int idProveedor = rs.getInt("idProveedor");
				String nombre = rs.getString("nombreProveedor");
				String razonSocial = rs.getString("razonSocial");
				String cuit = rs.getString("cuit");
				String iva = rs.getString("iva");
				String direccion = rs.getString("direccion");
				String telFijo = rs.getString("telFijo");
				String celular = rs.getString("celular");
				int cuentaBancaria1 = rs.getInt("ctaBancaria1");
				int cuentaBancaria2 = rs.getInt("ctaBancaria2");
				proveedor = new Proveedor(idProveedor, nombre, razonSocial, cuit, iva, direccion, telFijo, celular, cuentaBancaria1, cuentaBancaria2);
			}
			//s.close();
			//Conexion.desconectar();
			
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}	
		
		return proveedor;
	}
	
	public static boolean existeProveedor(String cuit){
		try{
			Statement stm=Conexion.conectar().createStatement();
			ResultSet rs=stm.executeQuery("select * from proveedor where CUIT='"+cuit+"'");
			if(rs.next()){
				return true;
			}
		}catch(Exception e){
			e.printStackTrace();
		}
		return false;
	}
}
